1時間プログラミング 005 Scrapboxのページをランダムに開くコマンド
#1時間プログラミング
概要
Scrapboxのページをランダムに開くコマンド
macOS専用
使い方
code:terminal
$ deno run --allow-run --allow-net mod.ts
{
"title": "1時間プログラミング 001 ダイスロール",
"url": "https://scrapbox.io/emanon001/1%E6%99%82%E9%96%93%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%20001%20%E3%83%80%E3%82%A4%E3%82%B9%E3%83%AD%E3%83%BC%E3%83%AB"
}
実装
ScrapboxのAPIを呼び出してページ一覧を取得し、ランダムなページを選んで開く
Denoを使用
URLを開く処理はopenコマンドを使用(つまりmacOS専用)
サブプロセスの生成はの通りに行った
コードを一部抜粋
code:mod.ts
// get pages
// ref. https://scrapbox.io/help-jp/API
const project = "emanon001";
const response = await fetch(https://scrapbox.io/api/pages/${project});
const json = await response.json();
const pages = json.pages;
// choose random page
const idx = Math.floor(Math.random() * pages.length);
const page = pagesidx;
// open page (only for macOS)
const url = https://scrapbox.io/${project}/${encodeURIComponent(page.title)};
const p = Deno.run({
cmd: "open", url,
});
await p.status();
const pageInfo = { title: page.title, url };
console.log(JSON.stringify(pageInfo, null, 2));
感想
1時間プログラミングくらいのコード規模なら、TS(Deno)で書くのが楽かもしれん